Expand description
Utilities for safe zero-copy parsing and serialization.
This crate provides utilities which make it easy to perform zero-copy parsing and serialization by allowing zero-copy conversion to/from byte slices.
This is enabled by three core marker traits, each of which can be derived
(e.g., #[derive(FromBytes)]
):
FromBytes
indicates that a type may safely be converted from an arbitrary byte sequenceAsBytes
indicates that a type may safely be converted to a byte sequenceUnaligned
indicates that a type’s alignment requirement is 1
Types which implement a subset of these traits can then be converted to/from byte sequences with little to no runtime overhead.
Note that these traits are ignorant of byte order. For byte order-aware
types, see the byteorder
module.
Re-exports
pub use crate::byteorder::*;
Modules
- Byte order-aware numeric primitives.
Structs
- A length- and alignment-checked reference to a byte slice which can safely be reinterpreted as another type.
Traits
- Types which are safe to treat as an immutable byte slice.
- A mutable or immutable reference to a byte slice.
- A mutable reference to a byte slice.
- Types for which any byte pattern is valid.
- Types with no alignment requirement.